Page({
  data: {
    userInfo: {
      nickName: '',
      avatar: '',
    },
  },
  onLoad() {
    // 从本地获取用户信息
    this.setData({ userInfo: wx.getStorageSync('userInfo') })
  },
  getUserNickName(ev) {
    // console.log(ev.detail.value)
    // 更新用户昵称
    this.updateNickName(ev.detail.value)
  },
  async updateNickName(nickName) {
    // 请求数据接口
    const { code } = await wx.http.put('/userInfo', { nickName })
    // 检测接口调用的结果
    if (code !== 10000) return wx.utils.toast('更新用户信息失败!')

    // 保存用户昵称
    this.setData({ 'userInfo.nickName': nickName })
  },
  // 2. 获取头像并上传
  async getUserAvatar(e) {
    console.log(e.detail.value)
    if (!e.detail.avatarUrl) return
    // 2.1 上传文件
    const res = await wx.http.upload('/upload', {
      name: 'file',
      filePath: e.detail.avatarUrl,
      formData: {
        type: 'avatar',
      },
    })
    console.log(res)

    // 检查 res 是否存在且为对象
    if (!res || typeof res !== 'object') {
      console.error('上传请求返回值异常:', res)
      return wx.utils.toast('上传头像失败1')
    }

    if (res.code !== 10000) return wx.utils.toast('上传头像失败')
    // 2.2 更新数据
    this.setData({
      'userInfo.avatar': res.data.url,
    })
    wx.utils.toast('头像上传成功')
  },
})
